function M_hat = run_mc(params)
  M = params.M;
  Idx = params.Idx;
  
  Ms = sparse(M);
  [~,~,VALS] = find(Ms);
  Known = logical(Idx);
  [U,S,V,hist] = ScGrassMC(Known, VALS, 2,...
                    'tol', 1.e-6,...
                    'maxit',100,...
                    'grad_type','scaled',...
                    'beta_type','P-R',...
                    'sigma_type','approx',... %'tol_reschg', tol_reschg,...
                    'verbose', 1);
  M_hat = (U*S*V');
end
